Trustworthiness of processed data

ABSTRACT

A method and/or computer program product indicates a trustworthiness of data processed in accordance with a processing rule. A first trust weight is assigned to a data item to be processed to provide a weighted data item, the first trust weight representing a level of trust in the data item. A second trust weight is assigned to the processing rule to provide a weighted processing rule, the second trust weight representing a level of trust in the processing rule. The weighted data item is processed in accordance with the weighted processing rule to generate a data output and an indication of a level of trust in the data output.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

This invention was made with Government support under Contract NumberW911NF-06-3-0001 awarded by the United States Army. The Government hascertain rights to this invention.

BACKGROUND

The invention relates to the trustworthiness of processed data. Moreparticularly, the invention relates to indicating the trustworthiness ofdata that has been processed in accordance with a processing rule.

Consumers (including humans or software agents) of information may beuncertain as to its trustworthiness. This is particularly problematicfor situations where information is based on large amounts of dataoriginating from different sources. Although attempts have been made toaddress the problem of indicating the trustworthiness of data, suchattempts have relied on assumptions that compromise the accuracy and/orusefulness of the indication(s) provided.

SUMMARY

In one or more embodiments of the present invention, a method and/orcomputer program product indicates a trustworthiness of data processedin accordance with a processing rule. A first trust weight is assignedto a data item to be processed to provide a weighted data item, thefirst trust weight representing a level of trust in the data item. Asecond trust weight is assigned to the processing rule to provide aweighted processing rule, the second trust weight representing a levelof trust in the processing rule. The weighted data item is processed inaccordance with the weighted processing rule to generate a data outputand an indication of a level of trust in the data output.

In an embodiment of the present invention, an apparatus for indicating atrustworthiness of data processed in accordance with a processing rulecomprises: a data weighting hardware unit adapted to assign a firsttrust weight to a data item to be processed to provide a weighted dataitem, the first trust weight representing a level of trust in the dataitem; a processing rule weighting hardware unit adapted to assign asecond trust weight to the processing rule to provide a weightedprocessing rule, the second trust weight representing a level of trustin the processing rule; and a processing hardware unit adapted toprocess the weighted data item in accordance with the weightedprocessing rule to generate a data output and an indication of a levelof trust in the data output.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention will now be described, by way of exampleonly, with reference to the accompanying drawings in which:

FIG. 1 depicts a pictorial representation of an example distributed dataprocessing system in which aspects of the illustrative embodiments maybe implemented;

FIG. 2 is a block diagram of an example data processing system in whichaspects of the illustrative embodiments may be implemented;

FIG. 3 depicts a data processing system according to an embodiment ofthe present subject matter; and

FIG. 4 is a flow chart of an example of an implementation of methodaccording to an embodiment of the present subject matter.

DETAILED DESCRIPTION

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The illustrative embodiments provide concepts for indicating thetrustworthiness of data that has been processed in accordance with oneor more processing rules. The concepts may employ a “possible world”interpretation to both data and processing rules which enables thepropagation of trust information from facts (e.g. trusted data) throughto conclusions (e.g. output data). Such an approach employs theassociation of trust information (such as weightings) to data and thedata processing rules, thereby catering for the propagation of anindication of trust across both data and processing rules.

Embodiments may therefore be said to apply an interpretation of trust toboth data and processing rules. This may therefore cater for thevariable nature of the trust of a set of data processing rules.

Illustrative embodiments may be utilized in many different types of dataprocessing environments. In order to provide a context for thedescription of elements and functionality of the illustrativeembodiments, FIGS. 1 and 2 are provided hereafter as exampleenvironments in which aspects of the illustrative embodiments may beimplemented. It should be appreciated that FIGS. 1 and 2 are onlyexamples and are not intended to assert or imply any limitation withregard to the environments in which aspects or embodiments of thepresent invention may be implemented. Many modifications to the depictedenvironments may be made without departing from the spirit and scope ofthe present invention.

FIG. 1 depicts a pictorial representation of an example distributed dataprocessing system in which aspects of the illustrative embodiments maybe implemented. Distributed data processing system 100 may include anetwork of computers in which aspects of the illustrative embodimentsmay be implemented. The distributed data processing system 100 containsat least one network 102, which is the medium used to providecommunication links between various devices and computers connectedtogether within distributed data processing system 100. The network 102may include connections, such as wire, wireless communication links, orfiber optic cables.

In the depicted example, first 104 and second 106 servers are connectedto the network 102 along with a storage unit 108. In addition, clients110, 112, and 114 are also connected to the network 102. The clients110, 112, and 114 may be, for example, personal computers, networkcomputers, or the like. In the depicted example, the first server 104provides data, such as boot files, operating system images, andapplications to the clients 110, 112, and 114. Clients 110, 112, and 114are clients to the first server 104 in the depicted example. Thedistributed data processing system 100 may include additional servers,clients, and other devices not shown.

In the depicted example, the distributed data processing system 100 isthe Internet with the network 102 representing a worldwide collection ofnetworks and gateways that use the Transmission ControlProtocol/Internet Protocol (TCP/IP) suite of protocols to communicatewith one another. At the heart of the Internet is a backbone ofhigh-speed data communication lines between major nodes or hostcomputers, consisting of thousands of commercial, governmental,educational and other computer systems that route data and messages. Ofcourse, the distributed data processing system 100 may also beimplemented to include a number of different types of networks, such asfor example, an intranet, a local area network (LAN), a wide areanetwork (WAN), or the like. As stated above, FIG. 1 is intended as anexample, not as an architectural limitation for different embodiments ofthe present invention, and therefore, the particular elements shown inFIG. 1 should not be considered limiting with regard to the environmentsin which the illustrative embodiments of the present invention may beimplemented.

FIG. 2 is a block diagram of an example data processing system 200 inwhich aspects of the illustrative embodiments may be implemented. Thedata processing system 200 is an example of a computer, such as client110 in FIG. 1, in which computer usable code or instructionsimplementing the processes for illustrative embodiments of the presentinvention may be located.

In the depicted example, the data processing system 200 employs a hubarchitecture including a north bridge and memory controller hub (NB/MCH)202 and a south bridge and input/output (I/O) controller hub (SB/ICH)204. A processing unit 206, a main memory 208, and a graphics processor210 are connected to NB/MCH 202. The graphics processor 210 may beconnected to the NB/MCH 202 through an accelerated graphics port (AGP).

In the depicted example, a local area network (LAN) adapter 212 connectsto SB/ICH 204. An audio adapter 216, a keyboard and a mouse adapter 220,a modem 222, a read only memory (ROM) 224, a hard disk drive (HDD) 226,a CD-ROM drive 230, a universal serial bus (USB) ports and othercommunication ports 232, and PCI/PCIe devices 234 connect to the SB/ICH204 through first bus 238 and second bus 240. PCI/PCIe devices mayinclude, for example, Ethernet adapters, add-in cards, and PC cards fornotebook computers. PCI uses a card bus controller, while PCIe does not.ROM 224 may be, for example, a flash basic input/output system (BIOS).

The HDD 226 and CD-ROM drive 230 connect to the SB/ICH 204 throughsecond bus 240. The HDD 226 and CD-ROM drive 230 may use, for example,an integrated drive electronics (IDE) or serial advanced technologyattachment (SATA) interface. Super I/O (SIO) device 236 may be connectedto SB/ICH 204.

An operating system runs on the processing unit 206. The operatingsystem coordinates and provides control of various components within thedata processing system 200 in FIG. 2. As a client, the operating systemmay be a commercially available operating system. An object-orientedprogramming system, such as the Java™ programming system, may run inconjunction with the operating system and provides calls to theoperating system from Java™ programs or applications executing on dataprocessing system 200.

As a server, data processing system 200 may be, for example, an IBM®eServer™ System p® computer system, running the Advanced InteractiveExecutive (AIX®) operating system or the LINUX® operating system. Thedata processing system 200 may be a symmetric multiprocessor (SMP)system including a plurality of processors in processing unit 206.Alternatively, a single processor system may be employed.

Instructions for the operating system, the object-oriented programmingsystem, and applications or programs are located on storage devices,such as HDD 226, and may be loaded into main memory 208 for execution byprocessing unit 206. The processes for illustrative embodiments of thepresent invention may be performed by processing unit 206 using computerusable program code, which may be located in a memory such as, forexample, main memory 208, ROM 224, or in one or more peripheral devices226 and 230, for example.

A bus system, such as first bus 238 or second bus 240 as shown in FIG.2, may be comprised of one or more buses. Of course, the bus system maybe implemented using any type of communication fabric or architecturethat provides for a transfer of data between different components ordevices attached to the fabric or architecture. A communication unit,such as the modem 222 or the network adapter 212 of FIG. 2, may includeone or more devices used to transmit and receive data. A memory may be,for example, main memory 208, ROM 224, or a cache such as found inNB/MCH 202 in FIG. 2.

Those of ordinary skill in the art will appreciate that the hardware inFIGS. 1 and 2 may vary depending on the implementation. Other internalhardware or peripheral devices, such as flash memory, equivalentnon-volatile memory, or optical disk drives and the like, may be used inaddition to or in place of the hardware depicted in FIGS. 1 and 2. Also,the processes of the illustrative embodiments may be applied to amultiprocessor data processing system, other than the SMP systemmentioned previously, without departing from the spirit and scope of thepresent invention.

Moreover, the data processing system 200 may take the form of any of anumber of different data processing systems including client computingdevices, server computing devices, a tablet computer, laptop computer,telephone or other communication device, a personal digital assistant(PDA), or the like. In some illustrative examples, the data processingsystem 200 may be a portable computing device that is configured withflash memory to provide non-volatile memory for storing operating systemfiles and/or user-generated data, for example. Thus, the data processingsystem 200 may essentially be any known or later-developed dataprocessing system without architectural limitation.

The proposed invention enhances a data processing system (such as thatdepicted in FIG. 2) by providing for the propagating of trustinformation from raw facts (e.g. data) through to conclusions (e.g. theresult(s) of processing data). Embodiments may intercept stepsundertaken in a data processing system which may result in themodification of an existing fact and/or the creation of a new (inferred)fact.

Conventional data processing systems typically assume that input facts(e.g. data) and data processing rules are trusted. Conversely, proposedembodiments employ the assumption that neither input facts (e.g. data)nor data processing rules may be fully trusted. To account for thisassumption, embodiments propose indicating the trustworthiness of bothdata and data processing rules and propagating the indication(s) throughdata processing procedures to an output result. The output result maythen be provided with an indication of trustworthiness, wherein theindication has accounted for both the trustworthiness of the processeddata and the processing rules used to process the data.

The indication of trustworthiness may be provided as annotations to thedata and the processing rules. For examples, such annotations may beprovided as part of metadata associated with the data and processingrules.

The annotations may be selected from a set of possible trust values(e.g., b=belief, d=disbelief, u=uncertainty), the selected value beingrepresentative of a determined level of trust in the data or processingrule. A trust value may be of any suitable form which provides arepresentation of a level of trust, such as a numerical value in apredetermined range or one of a defined set of values. Such annotationsmay therefore be used to support a “possible world” interpretation ofboth processing rules and data. In other words, an annotation may enablean associated data item or processing rule to exist in one of a set ofpossible trust states (e.g. true, false, or uncertain). The use of suchSubjective Logic (SL) enables representation of possible worldinterpretations and also enables the generation of trust annotations forprocessing outputs (e.g. a modified data item or new data item). Thisallows the proposed trust propagation concept to be used in iterative(e.g., SQL) and recursive (e.g., Prolog) data processing systems.

Referring to FIG. 3, there is depicted a data processing system 300according to an embodiment of the present subject matter. The dataprocessing system 300 comprises a data processing unit 310 and a datastorage unit 320. The data processing unit 310 is adapted to receive aplurality of data items 330 for processing by a trust processing unit340 of the data processing unit 310.

Here, each of the plurality of data items 330 comprises a piece/unit ofdata 330A with associated metadata 330B. The metadata 330B may compriseinformation regarding the associated piece/unit of data 330A such as: asource of the data item 330A; a time associated with the data item 330A;a date associated with the data item 330A; a creator of the data item330A; and an age of the data item 330A, for example.

Trust processing unit 340 comprises a data trust assigning unit 350 thatis adapted to receive a data item 330 and assign a trust weight to thedata item 330, the assigned trust weight representing a level of trustin the data item 330. Here, in order to assign a trust weight to a dataitem 330, the data trust assigning unit 350 determines a level of trustin the data item 330 based on the metadata 330B associated with the dataitem. More specifically, the data trust assigning unit 350 extracts themetadata 330B from the data item and compares information in theextracted metadata 330B with information stored in the data storage unit320. For example, the extracted metadata 330B may indicate the author ofthe associated data item 330A, and the data storage unit 320 may beadapted to store a lookup table comprising a list of authors and theirassociated level of trust (e.g. trust value). Based on the extractedmetadata 330B, a trust value for the data item may be determined frominformation stored in the data storage unit, the trust value beingrepresentative of a level of trust in the data item 330. The data trustassigning unit 350 may then assign the trust value to the data item as atrust weight representing a level of trustworthiness of the data item330.

Here, a trust value may be a value in the range of zero (0) to one (1),wherein a trust value of zero (0) indicates the lowest possible level oftrust (i.e. completely untrusted, and thus assumed false), and wherein atrust value of one (1) indicates the highest possible level of trust(i.e. completely trusted, and thus assumed true). Use of numerical trustvalues may enable simple mathematical processing of multiple trustvalues to be undertaken so as to determine a combined trust value. Forexample, two numerical trust values (in the range of zero to one) may bemultiplied together so as to calculate an overall/combined trust value(also in the range of zero to one). Alternatively, the average value ofmultiple trust values may be calculated as the overall/combined trustvalue.

Trust processing unit 340 also comprises a rule trust assigning unit 360that is adapted to receive a data processing rule and assign it a trustweight, the assigned trust weight representing a level of trust in thedata processing rule. Here, in order to assign a trust weight to a dataprocessing rule, the rule trust assigning unit 360 determines a level oftrust in the data processing rule based on the metadata associated withthe data processing rule. More specifically, the rule trust assigningunit 360 extracts metadata about the data processing rule and comparesinformation in the metadata with information stored in the data storageunit 320. For example, the metadata may indicate the author of theassociated data processing rule, and the data storage unit 320 may beadapted to store a lookup table comprising a list of authors and theirassociated level of trust (e.g. trust value). Based on the extractedmetadata, a trust value for the data processing rule may be determinedfrom information stored in the data storage unit, the trust value beingrepresentative of a level of trust in the data processing rule. The ruletrust assigning unit 360 may then assign the trust value to the dataprocessing rule as a trust weight representing a level oftrustworthiness of the data processing rule.

The data item(s) 330, data processing rule(s), and their assigned trustweight are provided to an output generation unit 370 of the trustprocessing unit 340. The output generation unit 370 is adapted toprocess the data item(s) 330 in accordance with the data processingrule(s) so as to generate a data output 380. The output generation unit370 is also adapted to process the assigned trust weights in accordancewith an algorithm to generate an associated indication of a level oftrust 390 in the data output 380. For example, where the trust weightsare numerical values in the range of zero (0) to one (1), the trustweights may be multiplied together so as to determine a numerical value(also in the range of zero) indicating a level of trust in the dataoutput. Alternatively, the average value of trust weight values may becalculated and used as the level of trust in the data output. In thisway, the trust processing unit 340 may provide an indication 390 of alevel of trustworthiness of the output data 380, wherein the indicationof trustworthiness 390 is based on an indicated trustworthiness of boththe processed data and the rules used to process the data.

In alternative embodiments, a family of SL operators may be used tocompute trust metadata, including complement, consensus, discounting,disjunction, conjunction and deduction. Examples of each of these SLoperators may be described as follows:

-   -   Complement: each opinion implies a complementary opinion. For        instance, if the proposition ‘x’ “Dust storm in location X” has        a probability of 0.5 and a sensor's opinion of x (as a SL triple        [belief, disbelief, uncertainty] plus the priori probability of        the proposition) is (0.75, 0.1, 0.15, 0.5) then the        (complementary) opinion “No dust storm in location X” is (0.1,        0.75, 0.15, 0.5).    -   Consensus: If another sensor has an opinion, the two sensor        opinions can be fused into a single opinion using the consensus        operator. For instance, sensor 1 (0.75, 0.1, 0.15, 0.5) and        sensor 2 (0, 0.7, 0.3, 0.5) may fuse under consensus to (0.55,        0.34, 0.11, 0.5).    -   Discounting: The discounting operator allows normalization of        opinions based on the trustworthiness of their owners.

Given opinions about different propositions, conjunction and disjunctionoperators may be used to derive the conjunction and disjunction of thepropositions.

The deduction operator is used to deduce new opinions from existingones.

Embodiments may therefore employ a trust analytics function whichapplies SL operators to assess trust of opinion.

It will be appreciated that in the example of FIG. 2, the data trustassigning unit 350 is adapted to assign a trust value to a data itembased on an evaluation of the data item. Such evaluation may take intoaccount supplementary information about the data item, which may beprovided as metadata associated with the data item for example. Theevaluation process may also take account of information stored in adatabase (provided by data storage unit 320 for example) indicatinglevels of trust associated with information values. The evaluationprocess may therefore combine multiple pieces of information, and theirassociated levels of trust, so as to determine a single trust value fora data item. Put another way, multiple indications of trust may becombined (or flattened) so as to provide a single indication of trustwhich provides an overall representation of the multiple indications oftrust.

Similarly, it will be appreciated that in the example of FIG. 3, therule trust assigning unit 360 is adapted to assign a trust value to aprocessing rule based on an evaluation of the processing rule. Suchevaluation may take into account supplementary information about theprocessing rule, which may be provided as metadata associated with theprocessing rule for example. The evaluation process may also takeaccount of information stored in a database (provided by data storageunit 320 for example) indicating levels of trust associated withinformation values. The evaluation process may therefore combinemultiple pieces of information, and their associated levels of trust, soas to determine a trust value for a processing rule.

From the example described above with reference to FIG. 3, it will beappreciated that embodiments may include the following components orconcepts:

-   -   ‘Background Knowledge’ may be employed (in a database for        example) in order to assist in assessment of the trustworthiness        of data and/or processing rules. Such knowledge may enable a        real world interpretation to be taken of data and/or processing        rules that may otherwise be assumed to be trusted;    -   Pre-asserted trustworthiness of data and/or processing rules may        be queried and and/or assessed to supplement a trust evaluation        process; and    -   An output indication of trustworthiness may be provided as a        single value, thus combining all trust indications into a        single, flattened interpretation in the assessed facts.

FIG. 4 is a flow chart of an example of an implementation of methodaccording to an embodiment of the present subject matter. FIG. 4 showsthe steps of the method carried out by a processing system, such as thesystem in FIG. 2 or 3, according to one example of the present subjectmatter.

First, in step 410, a first trust weight is assigned to a data item tobe processed so as to provide a weighted data item. The first trustweight is chosen so as to represent a determined level of trust in thedata item. Here, a level of trust in the data item is determined basedon metadata associated with the data item to be processed. A trust valueis then selected from a set of data trust values representing aplurality of different levels of trust, the selected trust value beingrepresentative of the determined level of trust in the data item. Theselected trust value is then assigned as the first trust weight for thedata item to be processed.

Next, in step 420, a second trust weight is assigned to a processingrule so as to provide a weighted processing rule. The second trustweight is chosen so as to represent a determined level of trust in theprocessing rule. Here, a level of trust in the processing rule isdetermined based on metadata associated with the processing rule. Atrust value is then selected from a set of data trust valuesrepresenting a plurality of different levels of trust, the selectedtrust value being representative of the determined level of trust in theprocessing rule. The selected trust value is then assigned as the secondtrust weight for the processing rule.

The weighted data item is then processed in accordance with the weightedprocessing rule in step 430 so as to generate a data output and anindication of a level of trust in the data output. Here, the first andsecond trust weights are executed in accordance with an algorithm whichgenerates the indication of a level of trust in the data output. Inother words, the algorithm takes account of the level of trust of boththe data item and the processing rule so as to generate the indicationof trust.

In one illustrative embodiment, a method is provided for indicating thetrustworthiness of data that has been processed in accordance with aprocessing rule. The illustrative embodiment assigns a first trustweight to a data item to be processed to provide a weighted data item,the first trust weight representing a level of trust in the data item.The illustrative embodiment also assigns a second trust weight to theprocessing rule to provide a weighted processing rule, the second trustweight representing a level of trust in the processing rule. Theillustrative embodiment processes the weighted data item in accordancewith the weighted processing rule to generate a data output and anindication of a level of trust in the data output.

In an embodiment, the step of processing the weighted data item inaccordance with the weighted processing rule may comprise: executing thefirst and second trust weights in accordance with an algorithm togenerate the indication of a level of trust in the data output.

In an embodiment, the step of assigning a first trust weight maycomprise: selecting a trust value from a set of data trust valuesrepresenting a plurality of different levels of trust associated withdata, the selected trust value being representative of a determinedlevel of trust in the data item to be processed; defining the selectedtrust value as the first trust weight; and associating the first trustweight with the data item to be processed.

The step of assigning a first trust weight may comprise determining alevel of trust in the data item to be processed based on metadataassociated with the data item to be processed. The metadata associatedwith the data item to be processed may comprise information regarding atleast one of: a source of the data item; a time associated with the dataitem; a date associated with the data item; a creator of the data item;and an age of the data item.

The step of assigning a second trust weight may comprise: selecting atrust value from a set of rule trust values representing a plurality ofdifferent levels of trust associated with processing rules, the selectedtrust value being representative of a determined level of trust in theprocessing rule; defining the selected trust value as the second trustweight; and associating the second trust weight with the processingrule.

The step of assigning a second trust weight may comprise: determining alevel of trust in the processing rule based on metadata associated withthe processing rule. The metadata associated with the processing rulemay comprise information regarding at least one of: an author of theprocessing rule; a time associated with the processing rule; a dateassociated with the processing rule; the complexity of the processingrule; and an age of the processing rule.

In other illustrative embodiments, a computer program product comprisinga computer useable or readable medium having a computer readable programis provided. The computer readable program, when executed on a computingdevice, causes the computing device to perform various ones of, andcombinations of, the operations outlined above with regard to the methodillustrative embodiment.

In yet another illustrative embodiment, a system or apparatus isprovided. The system or apparatus may comprise one or more processorsand a memory coupled to the one or more processors. The memory maycomprise instructions which, when executed by the one or moreprocessors, cause the one or more processors to perform various ones of,and combinations of, the operations outlined above with regard to themethod illustrative embodiment.

These and other features and advantages of the present invention will bedescribed in, or will become apparent to those of ordinary skill in theart in view of, the following detailed description of the exampleembodiments of the present invention.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

What is claimed is:
 1. A computer-implemented method for indicating atrustworthiness of data processed in accordance with a processing rule,the computer-implemented method comprising: assigning, by one or moreprocessors, a first trust weight to a data item to be processed toprovide a weighted data item, the first trust weight representing alevel of trust in the data item; assigning, by one or more processors, asecond trust weight to the processing rule to provide a weightedprocessing rule, the second trust weight representing a level of trustin the processing rule, wherein said assigning the second trust weightcomprises: selecting, by one or more processors, a trust value from aset of rule trust values representing a plurality of different levels oftrust associated with processing rules, the selected trust value beingrepresentative of a determined level of trust in the processing rule;defining, by one or more processors, the selected trust value as thesecond trust weight; and associating, by one or more processors, thesecond trust weight with the processing rule; and processing, by one ormore processors, the weighted data item in accordance with the weightedprocessing rule to generate a data output and an indication of a levelof trust in the data output.
 2. The computer-implemented method of claim1, wherein the step of processing the weighted data item in accordancewith the weighted processing rule comprises: executing, by one or moreprocessors, the first and second trust weights in accordance with analgorithm to generate the indication of a level of trust in the dataoutput.
 3. The computer-implemented method of claim 1, wherein the stepof assigning a first trust weight comprises: selecting, by one or moreprocessors, a trust value from a set of data trust values representing aplurality of different levels of trust associated with data, theselected trust value being representative of a determined level of trustin the data item to be processed; defining, by one or more processors,the selected trust value as the first trust weight; and associating, byone or more processors, the first trust weight with the data item to beprocessed.
 4. The computer-implemented method of claim 1, wherein thestep of assigning a first trust weight comprises: determining, by one ormore processors, a level of trust in the data item to be processed basedon metadata associated with the data item to be processed.
 5. Thecomputer-implemented method of claim 4, wherein the metadata associatedwith the data item to be processed comprises information regarding atleast one of: a source of the data item; a time associated with the dataitem; a date associated with the data item; a creator of the data item;and an age of the data item.
 6. The computer-implemented method of claim1, wherein the step of assigning a second trust weight comprises:determining, by one or more processors, a level of trust in theprocessing rule based on metadata associated with the processing rule.7. The computer-implemented method of claim 6, wherein the metadataassociated with the processing rule comprises information regarding: anauthor of the processing rule; a time associated with the processingrule; a date associated with the processing rule; the complexity of theprocessing rule; and an age of the processing rule.
 8. Thecomputer-implemented method of claim 1, wherein a level of trust isrepresented using Subjective Logic.
 9. The computer-implemented methodof claim 1, further comprising: multiplying, by one or more processors,the first trust weight by the second trust weight to derive a multipliedtrust weight; and setting, by one or more processors, the multipliedtrust weight as a trust level for the data output.
 10. Thecomputer-implemented method of claim 1, further comprising: averaging,by one or more processors, the first trust weight and the second trustweight to derive an average trust weight; and setting, by one or moreprocessors, the average trust weight as a trust level for the dataoutput.
 11. An apparatus for indicating a trustworthiness of dataprocessed in accordance with a processing rule, the apparatuscomprising: a data weighting hardware unit adapted to assign a firsttrust weight to a data item to be processed to provide a weighted dataitem, the first trust weight representing a level of trust in the dataitem; a processing rule weighting hardware unit adapted to assign asecond trust weight to the processing rule to provide a weightedprocessing rule, the second trust weight representing a level of trustin the processing rule, wherein assigning the second trust weightcomprises: selecting, by one or more processors, a trust value from aset of rule trust values representing a plurality of different levels oftrust associated with processing rules, the selected trust value beingrepresentative of a determined level of trust in the processing rule;defining, by one or more processors, the selected trust value as thesecond trust weight; and associating, by one or more processors, thesecond trust weight with the processing rule; and a processing hardwareunit adapted to process the weighted data item in accordance with theweighted processing rule to generate a data output and an indication ofa level of trust in the data output.
 12. The apparatus of claim 11,wherein the processing hardware unit is adapted to execute the first andsecond trust weights in accordance with an algorithm to generate theindication of a level of trust in the data output.
 13. The apparatus ofclaim 11, wherein the data weighting hardware unit is adapted to: selecta trust value from a set of data trust values representing a pluralityof different levels of trust associated with data, the selected trustvalue being representative of a determined level of trust in the dataitem to be processed; define the selected trust value as the first trustweight; and associate the first trust weight with the data item to beprocessed.
 14. A computer program product for indicating atrustworthiness of data processed in accordance with a processing rule,the computer program product comprising a non-transitory computerreadable storage medium having program code embodied therewith, whereinthe computer readable storage medium is not a transitory signal per se,and wherein the program code is readable and executable by a processorto perform a method comprising: assigning a first trust weight to a dataitem to be processed to provide a weighted data item, the first trustweight representing a level of trust in the data item; assigning asecond trust weight to the processing rule to provide a weightedprocessing rule, the second trust weight representing a level of trustin the processing rule, wherein said assigning the second trust weightcomprises: selecting a trust value from a set of rule trust valuesrepresenting a plurality of different levels of trust associated withprocessing rules, the selected trust value being representative of adetermined level of trust in the processing rule; defining the selectedtrust value as the second trust weight; and associating the second trustweight with the processing rule; and processing the weighted data itemin accordance with the weighted processing rule to generate a dataoutput and an indication of a level of trust in the data output.
 15. Thecomputer program product of claim 14, wherein the step of processing theweighted data item in accordance with the weighted processing rulecomprises: executing the first and second trust weights in accordancewith an algorithm to generate the indication of a level of trust in thedata output.
 16. The computer program product of claim 14, wherein thestep of assigning a first trust weight comprises: selecting a trustvalue from a set of data trust values representing a plurality ofdifferent levels of trust associated with data, the selected trust valuebeing representative of a determined level of trust in the data item tobe processed; defining the selected trust value as the first trustweight; and associating the first trust weight with the data item to beprocessed.
 17. The computer program product of claim 14, wherein thestep of assigning a first trust weight comprises: determining a level oftrust in the data item to be processed based on metadata associated withthe data item to be processed.
 18. The computer program product of claim17, wherein the metadata associated with the data item to be processedcomprises information regarding at least one of: a source of the dataitem; a time associated with the data item; a date associated with thedata item; a creator of the data item; and an age of the data item.